#include"./Buffer.hpp"
#include<iostream>

int main()
{
    Buffer b;

    //测试普通读写
    // char arr[] = "hello";
    // b.write(arr, sizeof(arr));

    //std::cout << "可读数据个数：" << b.get_readable_size() << std::endl;

    // char buf[8] = "abcdefg";
    // b.read(buf, sizeof(arr));


    //测试字符串读写
    // std::string str = "helloworld";
    // b.string_write(str, str.size());

    //std::cout << "可读数据个数：" << b.get_readable_size() << std::endl;


    // std::string ret = b.string_read(str.size());
    // std::cout << ret << std::endl;

    //测试Buffer读写
    // Buffer tem;
    // std::string str = "helloworld";
    // tem.string_write(str, str.size());
    // b.Buffer_write(tem, str.size());

    // std::cout << "可读数据个数：" << b.get_readable_size() << std::endl;

    // Buffer ret = b.Buffer_read(str.size());
    // std::string re = ret.string_read(str.size());
    // std::cout << re << std::endl;

    //测试扩容
    for(int i = 0; i < 200; i++)
    {
        std::string str("line ");
        str += std::to_string(i);
        str += '\n';
        b.string_write(str, str.size());
    }

    std::cout << "可读数据个数：" << b.get_readable_size() << std::endl;
    
    while(b.get_readable_size() > 0)
    {
        std::string str = b.line_read();
        std::cout << str;
    }
    
    return 0;
}